{"cells":[{"metadata":{"trusted":true},"cell_type":"raw","source":"1️⃣ Classe Personnage\n🔹 Attributs\nnom : nom du personnage (str)\nvie : points de vie (int)\nattaque : points d’attaque (int)\n🔹 Méthodes\n__init__(self, nom, vie, attaque)\nattaquer(self, monstre)\n→ enlève des points de vie au monstre\nest_vivant(self)\n→ retourne True si le personnage a encore de la vie\nafficher(self)\n→ affiche les informations du personnage\n\n2️⃣ Classe Monstre\n🔹 Attributs\ntype : type du monstre (ex : \"Dragon\", \"Zombie\")\nvie : points de vie (int)\nattaque : points d’attaque (int)\n🔹 Méthodes\n__init__(self, type, vie, attaque)\nattaquer(self, personnage)\n→ enlève des points de vie au personnage\nest_vivant(self)\nafficher(self)\n\n3️⃣ Règles du jeu\nUn personnage et un monstre s’attaquent chacun leur tour\nLe combat s’arrête quand l’un des deux n’a plus de vie"},{"metadata":{"trusted":true},"cell_type":"code","source":"import random\n\nclass Personnage:\n def __init__(self, nom, vie, attaque):\n self.nom = nom\n self.vie = vie\n self.attaque = attaque\n \n def attaquer(self, monstre):\n monstre.vie -= self.attaque\n return (\"Vie restante du monstre:\", monstre.vie)\n \n def est_vivant(self):\n if self.vie <= 0:\n return False\n return True\n \n def afficher(self):\n return (\"Nom:\", self.nom, \"/ Vie:\", self.vie, \"/ Attaque:\", self.attaque)\n \n \nclass Monstre:\n def __init__(self, type, vie, attaque):\n self.type = type\n self.vie = vie\n self.attaque = attaque\n \n def attaquer(self, personnage):\n personnage.vie -= self.attaque\n return (\"Vie restante de\", personnage.nom, \":\", personnage.vie)\n \n def est_vivant(self):\n if self.vie <= 0:\n return False\n return True\n \n def afficher(self):\n return (\"Type:\", self.type, \"/ Vie:\", self.vie, \"/ Attaque:\", self.attaque)\n \nPlayer1 = Personnage(\"Thorfinn\", 100, 8)\nMonstre1 = Monstre(\"Gobelin\", 35, 12)\nMonstre2 = Monstre(\"Ogre\", 200, 22)\n\ndef combat(personnage, monstre):\n i = 0\n while personnage.est_vivant and monstre.est_vivant:\n i += 1\n if i < 100:\n premier = random.randint(0, 1)\n if premier == 1:\n personnage.attaquer(monstre)\n etourdi = random.randint(0, 1)\n if etourdi == 1:\n print(\"Le\", monstre.type, \"est étourdi et n'attaque pas à ce tour.\")\n else:\n monstre.attaquer(personnage)\n else:\n monstre.attaquer(personnage)\n etourdi = random.randint(0, 1)\n if etourdi == 1:\n print(\"Le\", monstre.type, \"a étourdi\", personnage.nom, \"et il ne peut plus attaquer.\")\n else:\n personnage.attaquer(monstre)\n else:\n break\n if personnage.est_vivant:\n return personnage.nom, \"a gagné et\", monstre.type, \"est mort.\"\n else:\n return personnage.nom, \"a perdu...\", monstre.type, \"l'a tué\"\n \nprint(combat(Player1, Monstre1))\n\n \n ","execution_count":3,"outputs":[{"output_type":"stream","text":"Le Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin est étourdi et n'attaque pas à ce tour.\nLe Gobelin a étourdi Thorfinn et il ne peut plus attaquer.\n('Thorfinn', 'a gagné et', 'Gobelin', 'est mort.')\n","name":"stdout"}]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}